home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / app / WindowUndoManager.class (.txt) < prev   
Encoding:
Java Class File  |  2000-06-30  |  2.6 KB  |  105 lines

  1. package com.extensibility.app;
  2.  
  3. import com.extensibility.util.Debug;
  4. import java.awt.Window;
  5. import javax.swing.undo.UndoManager;
  6.  
  7. public class WindowUndoManager extends BaseUndoManager {
  8.    BaseDocument doc;
  9.  
  10.    public WindowUndoManager(BaseDocument var1) {
  11.       this.doc = var1;
  12.    }
  13.  
  14.    public boolean isUndoInProgress() {
  15.       return false;
  16.    }
  17.  
  18.    public void undo() {
  19.       try {
  20.          BaseUndoable var1 = (BaseUndoable)((UndoManager)this).editToBeUndone();
  21.  
  22.          BaseWindow var2;
  23.          for(var2 = this.doc.getWindow(var1.getWindow().getClass()); var2 == null; var2 = this.doc.getWindow(var1.getWindow().getClass())) {
  24.             ((UndoManager)this).trimEdits(super.edits.lastIndexOf(var1), super.edits.lastIndexOf(var1));
  25.             var1 = (BaseUndoable)((UndoManager)this).editToBeUndone();
  26.          }
  27.  
  28.          if (var2 != Desktop.getFrontDocWindow()) {
  29.             ((Window)var2).toFront();
  30.          }
  31.  
  32.          super.undo();
  33.       } catch (ClassCastException var3) {
  34.          super.undo();
  35.       }
  36.    }
  37.  
  38.    public void redo() {
  39.       try {
  40.          BaseUndoable var1 = (BaseUndoable)((UndoManager)this).editToBeRedone();
  41.  
  42.          BaseWindow var2;
  43.          for(var2 = this.doc.getWindow(var1.getWindow().getClass()); var2 == null; var2 = this.doc.getWindow(var1.getWindow().getClass())) {
  44.             ((UndoManager)this).trimEdits(super.edits.lastIndexOf(var1), super.edits.lastIndexOf(var1));
  45.             var1 = (BaseUndoable)((UndoManager)this).editToBeRedone();
  46.          }
  47.  
  48.          if (var2 != Desktop.getFrontDocWindow()) {
  49.             ((Window)var2).toFront();
  50.          }
  51.  
  52.          super.redo();
  53.       } catch (ClassCastException var3) {
  54.          super.redo();
  55.       }
  56.    }
  57.  
  58.    public void clearTo(BaseWindow var1) {
  59.       boolean var2 = false;
  60.  
  61.       int var3;
  62.       for(var3 = super.edits.size() - 1; var3 >= 0; --var3) {
  63.          try {
  64.             BaseEdit var4 = (BaseEdit)super.edits.elementAt(var3);
  65.             if (var4 instanceof BaseUndoable && ((BaseUndoable)var4).getWindow() == var1) {
  66.                var2 = true;
  67.                break;
  68.             }
  69.  
  70.             if (var4 instanceof BaseWindowEdit && ((BaseWindowEdit)var4).getWindow() == var1) {
  71.                var2 = true;
  72.                break;
  73.             }
  74.          } catch (ClassCastException var5) {
  75.          }
  76.       }
  77.  
  78.       if (var2) {
  79.          ((UndoManager)this).trimEdits(0, var3);
  80.       }
  81.  
  82.       if (super.edits.size() == 0) {
  83.          super.undoAction.setEnabled(false);
  84.          super.redoAction.setEnabled(false);
  85.       }
  86.  
  87.    }
  88.  
  89.    public void retargetEdits(BaseWindow var1) {
  90.       for(int var2 = 0; var2 < super.edits.size(); ++var2) {
  91.          try {
  92.             BaseUndoable var3 = (BaseUndoable)super.edits.elementAt(var2);
  93.             if (var3.getWindow() == var1) {
  94.                BaseDocument var4 = ((BaseEdit)var3).getDocument();
  95.                BaseWindow var5 = var4.getWindow(Class.forName("com.extensibility.app.BaseWindow"));
  96.                Debug.assert(var5 != null);
  97.                var3.setWindow(var5);
  98.             }
  99.          } catch (ClassCastException var6) {
  100.          }
  101.       }
  102.  
  103.    }
  104. }
  105.